Jak interaktywnie komunikować się z bazą danych? [Ajax, PHP, MySQL]
Zwykle skrypty pobierają dane z bazy i wyświetlają je w pożądanej formie na internetowej stronie. Potem użytkownik ogląda to, co skrypt pobrał – jeśli chce zobaczyć coś innego, trzeba przeładować stronę, podając inne parametry do kwerendy do bazy. Można jednak dzięki Ajaksowi łatwo zaoszczędzić sobie przeładowywania.
Strona internetowa może dynamicznie pobierać dane z bazy, korzystając z obiektu XHR (XMLHttpRequest). Zobaczmy jak to się robi na przykładzie prostej listy części:
Tworzymy stronę z formularzem HTML. Będzie ona wczytywała kod w JavaScripcie zajmujący się obsługą XHR i łączący się z działającym po stronie serwera skryptem PHP.
<html>
<head>
<script type="text/javascript" src="wybor.js"></script>
</head>
<body>
<form>
<strong>Wybierz część</strong>
<select name="rekord" onchange="showPart(this.value)">
<option value="1">Lusterko</option>
<option value="2">Opony letnie</option>
<option value="3">Katalizator</option>
</select>
</form>
<br />
<div id="informacja">Opis wybranej części:</div>
</body>
</html>
Strona HTML z selektorem.
Za każdym razem, kiedy użytkownik wybierze dane (zdarzenie onchange) wykonywana jest funkcja showPart(); zdefiniowana w skrypcie wybor.js.
var xmlhttp;
function showPart(str)
{
xmlhttp=GetXmlHttpObject();
var url="baza.php";
url=url+"?part="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("informacja").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
return null;
}
Skrypt wybor.js
Funkcja showPart wywołuje funkcję GetXmlHttpObject (służącą do utworzenia obiektu XMLHTTP, definiuje adres, na który ma być on wysłany do serwera, dopisuje do URL wywołania parametr wybrany w selektorze i dodaje do niego losowy numer, żeby nie powielać danych z cache.
Teraz za każdym razem, gdy dochodzi do zmiany własności readyState, wykonywana jest funkcja stateChanged(). Kiedy wartość wyniesie „4” – funkcja wypełni kontener div o identyfikatorze „informacja” danymi pobranymi z bazy.
«poprzednia 1 2 następna »
Polecamy
Reklama
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
36
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
Zaktualizuj PHP do wersji 5.4, zyskasz za darmo nawet o kilkudziesiąt procent wyższą wydajność aplikacji
6
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
36
Społeczność
ady "Po złożeniu podpisu, dane biometryczne zostają trwale powiązane z treścią...
WebDev @slawek22
OK. Rozumiem i wiem, że koncerny stosują regionalizacje i nie...
slawek22 >są inne rodzime serwisy VOD z legalny filmami
WebDev no fakt... jeśli...
WebDev @BLACK BEAR®
"bo denerwujesz mi ludzi na forum” lool
Minister Zdrowia...
tobas ClickShop bardzo wolno działa!!!
Nie dajcie się nabrać na wygląd i...
blackbear @WebDev, widzę że muszę Ci rozjaśnić we łbie. Czytaj więc i nie pisz...
Jay Brak obsługi aplikacji x86/x64 ze zwykłych desktopów to kręcenie na siebie...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |








